{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Matplotlib图鉴——基础箱线图\n",
    "\n",
    "## 公众号：可视化图鉴"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.3.3\n",
      "1.1.5\n",
      "1.19.5\n"
     ]
    }
   ],
   "source": [
    "import matplotlib\n",
    "print(matplotlib.__version__) #查看Matplotlib版本\n",
    "import pandas as pd\n",
    "print(pd.__version__) #查看pandas版本\n",
    "import numpy as np\n",
    "print(np.__version__) #查看numpy版本\n",
    "import matplotlib.pyplot as plt \n",
    "plt.rcParams['font.sans-serif'] = ['STHeiti'] #设置中文"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "注意，代码在以下环境全部通过测试:\n",
    "- Python 3.7.1\n",
    "- Matplotlib == 3.3.3\n",
    "- pandas == 1.2.0\n",
    "- numpy == 1.19.4\n",
    "\n",
    "因版本不同，可能会有部分语法差异，如有报错，请先检查拼写及版本是否一致！"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 进阶箱线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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VH1qFhWzzg9zAMw6P6uny1Z3iF6qr6/npZdeori4mPr6eoqKipg/f34iRocQERHJVqlRIMrnXNg2OsSH535pWI0O0RdJmi5bRXAv7b///px//vk0NzfT2trK008/zfnnn8/+++8fd2giIiLSB+879Uzed+qZfR4VRIY2dYfopfXr17N9+3bGjBkDwJgxY9i+fTvr16+POTIRERER6Y5agntp69atjBo1ij322IONGzeyxx570NjYyNatW+MOrV+ZWZ+fw937IRIRERGR/qOW4D649NJLee6553jggQd47rnnuPTSS+MOqd+5e5e3nq4jIiIiMpSoJbgPrrjiCt71rne1TZZxxRVXxB2SiIiIiPSAiuBemjhxIhs2bKCsrIw33niDvffem40bNzJx4sS4QxMRERGRbqgI7oGu+sW+/vrr7X6uW7cu4/rqFiAiIjL4zjoivlGbJkyYENtrQ5i6OC5x594T6hPcA531dV26dClHHnkkAEceeSRLly5Vv1gREZEhortrVvrjupeubuvWrVPuQ5hagvugrKyMsrIyzIwVK1bEHY6IiIiI9JBagkVEREQkcVQEi4iIiEjiqAgWERERkcRRESwiIiIiiaMiWEREREQSZ0gWwWa2xczWpN2+GXdMIiIiIpI9htwQaWaWC4wAxroG2BURERGRATAUW4LHAetVAIuIiIjIQBmKRfAeAGb2oJmtNbM7zWxc3EGJiIiISPYYikVwPvAcMAc4AHgTMK/jSmY228weNbNHV69ePcghioiIiMhwNuSKYHf/t7u/293r3X07cC9wbIb1rnP3Y9392EmTJg1+oCIiIiIybA25ItjMSs3s02mLCoFNccUjIiIiItlnyBXBhJguM7NJZjYJOB24J+aYRERERCSLDLkh0tz9ATO7Fvgn0ArcCNwca1AiIiIiklWGXBEM4O6XAZfFHYeIiIiIZKeh2B1CRERERGRAqQgWkUQZO34CZtbrG9Cn7SdOnBhb7hPH7ZHY3EVEOhqS3SFERAbKlo0buPXJV3q9fc6qFbROKe719mcdsX+vt+2r9Zs34cv/2uvtl29+g2lj9+719jbtHb3etj/E+d5PmDAhttcWkcxUBIuISNZz9z5tb2Z9fg4RGVpUBIuIiGS5OFvh1QouQ5WKYBERkSymVnCRzHRhnIiIiIgkjopgEREREUkcFcEiIiIikjgq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\n",
      "text/plain": [
       "<Figure size 720x648 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib.patches import Polygon\n",
    "\n",
    "# via https://matplotlib.org/gallery/statistics/boxplot_demo.html?highlight=boxplot\n",
    "random_dists = ['Normal(1, 2)', 'Lognormal(1, 3)', 'Exp(3)', 'Gumbel(6, 5)',\n",
    "                'Triangular(3, 8, 11)']\n",
    "N = 1793\n",
    "\n",
    "norm = np.random.normal(1, 2, N)\n",
    "logn = np.random.lognormal(1, 3, N)\n",
    "expo = np.random.exponential(3, N)\n",
    "gumb = np.random.gumbel(6, 5, N)\n",
    "tria = np.random.triangular(3, 8, 11, N)\n",
    "\n",
    "bootstrap_indices = np.random.randint(0, N, N)\n",
    "data = [\n",
    "    norm, norm[bootstrap_indices],\n",
    "    logn, logn[bootstrap_indices],\n",
    "    expo, expo[bootstrap_indices],\n",
    "    gumb, gumb[bootstrap_indices],\n",
    "    tria, tria[bootstrap_indices],\n",
    "]\n",
    "\n",
    "fig, ax1 = plt.subplots(figsize=(10, 9))\n",
    "fig.subplots_adjust(left=0.075, right=0.95, top=0.9, bottom=0.25)\n",
    "\n",
    "bp = ax1.boxplot(data, notch=0, sym='o', vert=1, whis=1.5)\n",
    "plt.setp(bp['boxes'], color='black')\n",
    "plt.setp(bp['whiskers'], color='black')\n",
    "plt.setp(bp['fliers'], color='red', marker='o')\n",
    "\n",
    "#在绘图中添加水平网格\n",
    "ax1.yaxis.grid(True, linestyle='-', which='major', color='lightgrey',\n",
    "               alpha=0.5)\n",
    "\n",
    "#ax1.set(\n",
    "#    axisbelow=True,  \n",
    "#    title='五个不同分布的比较箱线图',\n",
    "#    xlabel='分布',\n",
    "#    ylabel='值'\n",
    "#)\n",
    "\n",
    "box_colors = ['lightblue', 'pink']\n",
    "num_boxes = len(data)\n",
    "medians = np.empty(num_boxes)\n",
    "for i in range(num_boxes):\n",
    "    box = bp['boxes'][i]\n",
    "    box_x = []\n",
    "    box_y = []\n",
    "    for j in range(5):\n",
    "        box_x.append(box.get_xdata()[j])\n",
    "        box_y.append(box.get_ydata()[j])\n",
    "    box_coords = np.column_stack([box_x, box_y])\n",
    "\n",
    "    ax1.add_patch(Polygon(box_coords, facecolor=box_colors[i % 2]))\n",
    "    \n",
    "    med = bp['medians'][i]\n",
    "    median_x = []\n",
    "    median_y = []\n",
    "    for j in range(2):\n",
    "        median_x.append(med.get_xdata()[j])\n",
    "        median_y.append(med.get_ydata()[j])\n",
    "        ax1.plot(median_x, median_y, 'k')\n",
    "    medians[i] = median_y[0]\n",
    "\n",
    "    ax1.plot(np.average(med.get_xdata()), np.average(data[i]),\n",
    "             color='w', marker='o', markeredgecolor='k')\n",
    "\n",
    "    \n",
    "# 设置轴范围和轴标签\n",
    "ax1.set_xlim(0.5, num_boxes + 0.5)\n",
    "top = 40\n",
    "bottom = -5\n",
    "ax1.set_ylim(bottom, top)\n",
    "ax1.set_xticklabels(np.repeat(random_dists, 2),\n",
    "                    rotation=45, fontsize=8)\n",
    "\n",
    "# 两位小数精确\n",
    "pos = np.arange(num_boxes) + 1\n",
    "upper_labels = [str(round(s, 2)) for s in medians]\n",
    "weights = ['bold', 'semibold']\n",
    "for tick, label in zip(range(num_boxes), ax1.get_xticklabels()):\n",
    "    k = tick % 2\n",
    "    ax1.text(pos[tick], .95, upper_labels[tick],\n",
    "             transform=ax1.get_xaxis_transform(),\n",
    "             horizontalalignment='center', size='medium',\n",
    "             weight=weights[k], color=box_colors[k])\n",
    "        \n",
    "fig.text(0.80, 0.08, f'{N} 随机数',\n",
    "         backgroundcolor=box_colors[0], color='black', weight='roman',\n",
    "         size='medium')\n",
    "fig.text(0.80, 0.045, '重采样',\n",
    "         backgroundcolor=box_colors[1],\n",
    "         color='black', weight='roman', size='medium')\n",
    "fig.text(0.80, 0.015, '*', color='black', backgroundcolor='silver',\n",
    "         weight='roman', size='medium')\n",
    "fig.text(0.815, 0.013, ' 平均值', color='black', weight='roman',\n",
    "         size='medium')\n",
    "\n",
    "plt.xlabel(\"分布\", fontsize = 20)\n",
    "plt.ylabel(\"值\", fontsize = 20)\n",
    "plt.title('五个不同分布的比较箱线图', fontsize = 20)\n",
    "\n",
    "plt.tick_params(labelsize=13)\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
